package com.example.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.common.PageResult;
import com.example.pojo.entity.Account;
import com.example.pojo.entity.PetShop;
import com.example.pojo.vo.PetShopHotVo;
import com.example.pojo.vo.PetShopQueryVo;
import java.util.List;

/**
 * 宠物店 service 层接口
 */
public interface PetShopService extends IService<PetShop> {

    /**
     * 创建一个宠物店账号
     *
     * @param petShop 宠物店
     */
    void add(PetShop petShop);

    /**
     * 分页查询宠物店
     *
     * @param pageNum 页码
     * @param pageSize 页大小
     * @param petShop 条件
     * @return 分页结果
     */
    PageResult<PetShopQueryVo> pageQuery(Integer pageNum, Integer pageSize, PetShop petShop);

    /**
     * 根据宠物店id，查询宠物店
     *
     * @param id 宠物店id
     * @return 宠物店
     */
    PetShop queryById(Integer id);

    /**
     * 根据条件查询全部宠物店
     *
     * @param petShop 条件
     * @return 宠物店
     */
    List<PetShop> queryAll(PetShop petShop);

    /**
     * 修改宠物店
     *
     * @param petShop 宠物店
     */
    void update(PetShop petShop);

    /**
     * 登录
     *
     * @param account 账号
     * @return 账号
     */
    PetShop login(Account account);


    /**
     * 修改账号密码
     *
     * @param account 账号
     */
    void updatePassword(Account account);

    /**
     * 宠物店提交认证材料
     *
     * @param petShop 认证材料
     */
    void submitIdentify(PetShop petShop);

    /**
     * 管理员审核认证材料
     *
     * @param petShop 认证材料
     */
    void auditIdentify(PetShop petShop);

    /**
     * 统计所有宠物店的销售额，并从大到小排序
     *
     * @return 宠物店 vo 列表
     */
    List<PetShopHotVo> countAllPetShopSale();
}
